// /*
//  * @Description:
//  * @Version: 0.0.1
//  * @Autor: zhj1214
//  * @Date: 2021-11-25 21:36:23
//  * @LastEditors: zhj1214
//  * @LastEditTime: 2021-12-02 22:51:36
//  */
// import cloneDeep from "lodash.clonedeep";
// import { asyncRouterMap, constantRouterMap } from "@/config/router.config";

// /**
//  * 过滤账户是否拥有某一个权限，并将菜单从加载列表移除
//  *
//  * @param permission
//  * @param route
//  * @returns {boolean}
//  */
// function hasPermission(permission, route) {
//   if (route.meta && route.meta.permission) {
//     let flag = false;
//     for (let i = 0, len = permission.length; i < len; i++) {
//       flag = route.meta.permission.includes(permission[i]);
//       if (flag) {
//         return true;
//       }
//     }
//     return false;
//   }
//   return true;
// }

// /**
//  * 单账户多角色时，使用该方法可过滤角色不存在的菜单
//  *
//  * @param roles
//  * @param route
//  * @returns {*}
//  */
// // eslint-disable-next-line
// function hasRole(roles, route) {
//   if (route.meta && route.meta.roles) {
//     return route.meta.roles.includes(roles.id);
//   }
//   return true;
// }

// function filterAsyncRouter(routerMap, roles) {
//   const accessedRouters = routerMap.filter(route => {
//     if (hasPermission(roles.permissionList, route)) {
//       if (route.children && route.children.length) {
//         route.children = filterAsyncRouter(route.children, roles);
//       }
//       return true;
//     }
//     return false;
//   });
//   return accessedRouters;
// }

// const permission = {
//   state: {
//     routers: constantRouterMap,
//     addRouters: [],
//   },
//   mutations: {
//     SET_ROUTERS: (state, routers) => {
//       state.addRouters = routers;
//       state.routers = constantRouterMap.concat(routers);
//     },
//   },
//   actions: {
//     GenerateRoutes({ commit }, data) {
//       return new Promise(resolve => {
//         const { roles } = data;
//         const routerMap = cloneDeep(asyncRouterMap);
//         const accessedRouters = filterAsyncRouter(routerMap, roles);
//         commit("SET_ROUTERS", accessedRouters);
//         resolve();
//       });
//     },
//   },
// };

// export default permission;
